#include <stdio.h>

//定义功能接口
typedef struct {
    void (*feature1)(void);
    void (*feature2)(void);
} Interface;
// 实现函数1
void implement1(void) { printf("Function 1 implemented \n"); }
// 实现函数2
void implement2(void) { printf("Function 2 implemented \n"); }
// 定义接口对象
/*
 *
 * //定义功能接口
typedef struct {
 void (*feature1)(void);
 void (*feature2)(void);
} Interface;
// 实现函数1
void implement1(void) {
 printf("Function 1 implemented \n");
}

// 实现函数2
void implement2(void) {
 printf("Function 2 implemented \n");
}
// 定义接口对象
Interface interface = {
 .feature1 = implement1,
 .feature2 = implement2
};
 * */
Interface interface = {.feature1 = &implement1, .feature2 = &implement2};

// 用户代码
void user_code(void)
{
    // 使用interface对象中定义好的功能接口
    interface.feature1();
    interface.feature2();
}

int main()
{
    user_code();
    return 0;
}
